<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <script type="text/javascript" src="./lib/vue-2.4.0.js"></script>
  </head>

  <body>
    <div id="app">
      <a href="" @click.prevent="comName = 'login'">登陆</a>
      <a href="" @click.prevent="comName = 'register'">注册</a>

      <!-- Vue提供了 component元素 ,来展示对应名称的组件 -->
      <!-- component 是一个占位符, :is 属性,可以用来指定要展示的组件的名称来替换component -->
      <!-- 这只种方式没有只能展示两组件的限制 -->
      <component :is="comName"></component>
      <!-- 用引号包裹起来代表组件名称 不然就成了表达式跑到data找对应属性 -->
      <!-- <component :is="'login'"></component> -->
      <!-- <component :is="'register'"></component> -->

      <!-- 总结:当前学习了几个 Vue 提供的标签了??? -->
      <!-- component(用来实现组件切换),  template(自定义所属组件template属性控制区域的模版字符串),  transition(实现单个元素动画),  transitionGroup(实现多个元素动画)  -->
    </div>

    <script type="text/javascript">
      // 组件名称是 字符串
      Vue.component("login", {
        template: "<h1>登陆组件</h1>"
      });

      Vue.component("register", {
        template: "<h1>注册组件</h1>"
      });

      // 创建 Vue实例，得到 ViewModel
      var vm = new Vue({
        el: "#app",
        data: {
          comName: "login" // 当前 component 中的 :is 绑定的组件的名称
        },
        methods: {}
      });
    </script>
  </body>
</html>
